import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ATuhuDemo {
    protected void  meth() throws IOException {}
    public static boolean checkEmaile(String emaile){
        /**
         *   正则表达式实用规则
         *   ^匹配输入字符串的开始位置
         *   $结束的位置
         *   \转义字符 eg:\. 匹配一个. 字符  不是任意字符 ，转义之后让他失去原有的功能
         *   \t制表符
         *   \n换行符
         *   \\w匹配字符串  eg:\w不能匹配 因为转义了
         *   \w匹配包括字母数字下划线的任何单词字符
         *   \s包括空格制表符换行符
         *   *匹配前面的子表达式任意次
         *   .小数点可以匹配任意字符
         *   +表达式至少出现一次
         *   ?表达式0次或者1次
         *   {10}重复10次
         *   {1,3}至少1-3次
         *   {0,5}最多5次
         *   {0,}至少0次 不出现或者出现任意次都可以 可以用*号代替
         *   {1,}至少1次  一般用+来代替
         *   []自定义集合     eg:[abcd]  abcd集合里任意字符
         *   [^abc]取非 除abc以外的任意字符
         *   |  将两个匹配条件进行逻辑“或”（Or）运算
         *   [1-9] 1到9 省略123456789
         *    邮箱匹配 eg: ^[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\.){1,3}[a-zA-z\-]{1,}$
         *
         */
        String RULE_EMAIL = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";
        //正则表达式的模式 编译正则表达式
        Pattern p = Pattern.compile(RULE_EMAIL);
        //正则表达式的匹配器
        Matcher m = p.matcher(emaile);
        //进行正则匹配
        while(m.find()) {
            String group = m.group();
            System.out.println("group = " + group);
        }
        return m.matches();
    }
    public static void main(String[] args) throws ParseException {
        String str = "fdj(sdfjkljalk)(erjlkfd))";
        Stack<Character> stack = new Stack<>();
        int i = 0;
        int start = 0,end=0;
        while (!stack.isEmpty()||i<str.length()){
            if(str.charAt(i)=='('){
                stack.add('(');
                start = i;
            }else if(!stack.isEmpty()&&str.charAt(i)==')'){
                Character pop = stack.pop();
                if (pop=='('){
                    String substring = str.substring(start+1, i);
                    StringBuilder sb = new StringBuilder(substring);
                    String s = sb.reverse().toString();
                    str = str.replace(substring, s);
                }
            }
            i++;
        }
        System.out.println("str = " + str);
//        int n[] = new int[]{1,2,3,1,2,3};
//        int l = 0,r = n.length-1;
//        int sumL = 0,sumR = 0;
//        while (l<=r){
//            if(sumL<sumR){
//                sumL += n[l++];
//            }else{
//                sumR += n[r--];
//            }
//            System.out.println("sumL = " + sumL);
//            System.out.println("sumR = " + sumR);
//        }
//
//        System.out.println("sumL==sumR = " + (sumL == sumR));
//        Map map = new HashMap();
//        System.out.println(checkEmaile("123456123@qq-com.com"));
//        System.out.println(checkEmaile("test@163.com"));
//        System.out.println(checkEmaile("test99@163.com.cn"));
//        System.out.println(checkEmaile("test.b@qq.com"));
//        String s = "我的1<if test='case == 1'>1</if>我的2<if test='case == 2'>2</if>";
//        String regex = "<if test='([\\s\\S]*?)'>([\\s\\S]*?)</if>";
//        Pattern p = Pattern.compile(regex);
//        Matcher m = p.matcher(s);
//        while(m.find()) {
//            String group = m.group();
//            System.out.println("group = " + group);
//        }
//        System.out.println("System.currentTimeMillis() = " + System.currentTimeMillis());
//        DateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
//        Date parse = format.parse("2020-14-23 1:2:3");
//        System.out.println("parse = " + parse);
//        String format1 = format.format(parse);
//        System.out.println("format1 = " + format1);
//        Date date = new Date(System.currentTimeMillis());
//        System.out.println(format.format(date));
//        double a = 0.01;
//        long b = 10;
//        float c= 10.01f;
//        boolean d=true,e=false;
//        boolean b1 = d | e;
//        System.out.println("b1 = " + b1);
//        try{
//            System.out.println(Integer.parseInt("forty"));
//        }catch (NumberFormatException d){
//
//        }catch (RuntimeException e){
//            System.out.println("run");
//        }
//        NumberFormatException numberFormatException = new NumberFormatException();
    }
}
